from 工程.凌云项目.MLS接收模块.基础配置.基础配置引用 import *

def ILS最小输入电平测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != 'ILS最小输入电平测试初始化'+模块编号:
        gy参数.初始化标识='ILS最小输入电平测试初始化'+模块编号
    else:
        return

    gy产品.模块控制.连接()
    gy仪器.频谱仪.连接()
    gy仪器.信号源.连接()
    gy产品.射频路由.连接()

    gy仪器.信号源.设置幅度(-100)
    gy仪器.信号源.调制开关('关')
    gy仪器.信号源.射频开关('开')
    gy仪器.频谱仪.设置扫频带宽(1e5)
    gy仪器.频谱仪.设置视频带宽(1e3)
    gy仪器.频谱仪.设置分析带宽(1e3)
    gy仪器.频谱仪.设置扫描时间自动()
    gy仪器.频谱仪.设置功率单位('DBM')
    gy仪器.频谱仪.设置参考幅度(15)
    gy仪器.频谱仪.设置触发源IMM()
    gy仪器.频谱仪.设置自动衰减()
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置内部增益开关(0)
    gy仪器.频谱仪.设置中心频率(70e6)
    gy仪器.频谱仪.设置最大保持开关('关')

    gy产品.射频路由.接通ILS航向频谱仪测试()
    print("MLS最小输入电平测试初始化")

def ILS航向最小输入电平(频点=108.1):
    ILS最小输入电平测试初始化()
    gy产品.射频路由.接通ILS航向频谱仪测试()
    if 频点=="抽测频点":
        随机值 = gy方法.随机数.产生随机整数(1, 37)
        if 随机值 in [0, 9,12,18,22,39]:
            随机值 += 1
        频点=MLS通信协议.ILS频点[随机值][0]

    gy产品.模块控制.设置ILS航向频率(频点)
    补偿 = gy参数.通道补偿['ILS航向']
    幅度 = -96

    频率=频点*1000000
    gy仪器.信号源.设置频率(频率)
    gy仪器.信号源.设置幅度(幅度)
    gy方法.时间处理.延时(3)
    最小输入电平=0
    for i in range(幅度,幅度-30,-1):
        gy仪器.信号源.设置幅度(i+补偿)
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值 = gy仪器.频谱仪.读幅度()
        if 峰值<-5:
            最小输入电平=i+1
            break
        最小输入电平 = i + 1

    gy方法.测试结果保存.结果保存(最小输入电平, '')
    if 频点 not in [108.1,109.9,111.95]:
        gy方法.测试结果保存.结果保存(频点, '频点')

def ILS下滑最小输入电平(频点=332):
    ILS最小输入电平测试初始化()
    gy产品.射频路由.接通ILS下滑频谱仪测试()
    if 频点=="抽测频点":
        随机值 = gy方法.随机数.产生随机整数(1, 37)
        if 随机值 in [0, 9,12,18,22,39]:
            随机值 += 1
        频点 = MLS通信协议.ILS频点[随机值][1]

    gy产品.模块控制.设置ILS下滑频率(频点)
    补偿=gy参数.通道补偿['ILS下滑']
    幅度 = -88

    频率=频点*1000000
    gy仪器.信号源.设置频率(频率)
    gy仪器.信号源.设置幅度(幅度)

    gy方法.时间处理.延时(3)
    最小输入电平=0
    for i in range(幅度,幅度-30,-1):
        gy仪器.信号源.设置幅度(i+补偿)
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值 = gy仪器.频谱仪.读幅度()
        if 峰值<-5:
            最小输入电平=i+1
            break
        最小输入电平=i+1

    gy方法.测试结果保存.结果保存(最小输入电平, '')
    if 频点 not in [329.15,332.0,335.0]:
        gy方法.测试结果保存.结果保存(频点, '频点')


if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    ILS下滑最小输入电平(332)